#!/bin/bash

set -e

LIBS_DIR="./libs"
GROUP_ID="com.casdon.aar"
VERSION="1.0.0"
GRADLE_KTS_FILE="./build.gradle.kts"
GRADLE_GROOVY_FILE="./build.gradle"
IS_KTS=false
GRADLE_FILE=""

MARKER="AAR_DEPENDENCY_MARKER"

# 判断 gradle 类型
if [[ -f "$GRADLE_KTS_FILE" ]]; then
  IS_KTS=true
  GRADLE_FILE="$GRADLE_KTS_FILE"
  echo "📄 检测到 Kotlin DSL (build.gradle.kts)"
elif [[ -f "$GRADLE_GROOVY_FILE" ]]; then
  IS_KTS=false
  GRADLE_FILE="$GRADLE_GROOVY_FILE"
  echo "📄 检测到 Groovy DSL (build.gradle)"
else
  echo "❌ 未找到 build.gradle 或 build.gradle.kts 文件。"
  exit 1
fi

# 检查 mvn 命令
if ! command -v mvn &> /dev/null; then
    echo "❌ 请先安装 Maven（mvn 命令未找到）。"
    exit 1
fi

# 遍历 libs 目录安装 aar 并添加依赖
for aar in "$LIBS_DIR"/*.aar; do
    if [ -f "$aar" ]; then
        FILENAME=$(basename -- "$aar")
        ARTIFACT_ID="${FILENAME%.*}"

        echo "📦 安装 $FILENAME 到本地 Maven..."

        mvn install:install-file \
            -Dfile="$aar" \
            -DgroupId="$GROUP_ID" \
            -DartifactId="$ARTIFACT_ID" \
            -Dversion="$VERSION" \
            -Dpackaging=aar \
            -DgeneratePom=true

        DEP_LINE="implementation(\"$GROUP_ID:$ARTIFACT_ID:$VERSION\")"
        if ! grep -q "$DEP_LINE" "$GRADLE_FILE"; then
            awk -v marker="$MARKER" -v dep="$DEP_LINE" '
            BEGIN { inserted=0 }
            {
              print
              if (!inserted && $0 ~ marker) {
                print dep
                inserted=1
              }
            }' "$GRADLE_FILE" > "$GRADLE_FILE.tmp" && mv "$GRADLE_FILE.tmp" "$GRADLE_FILE"
        fi
    fi
done

echo -e "\033[0;32m✅ 所有 AAR 安装并更新 $GRADLE_FILE 完成。\033[0m"

echo -e "\033[0;32m📌 请手动在 $GRADLE_FILE 文件中添加以下依赖（如果尚未自动添加成功）：\033[0m"

echo -e "\033[0;32m📌 请确保在 $GRADLE_FILE 的 "allprojects"标签下的repositories { ... } 中包含以下内容：\033[0m"
echo ""
echo -e "\033[0;32mrepositories {\033[0m"
echo -e "\033[0;32m    mavenLocal()\033[0m"
echo -e "\033[0;32m    // 其他仓库，如 mavenCentral() 或 google()\033[0m"
echo -e "\033[0;32m}\033[0m"

echo ""
echo -e "\033[0;32m👇 推荐插入位置：在 app module 的 build.gradle 中的 \"android\"标签下的dependencies { ... } 块内，如：\033[0m"
echo ""
echo -e "\033[0;32mandroid {\033[0m"
echo -e "\033[0;32m    ...\033[0m"
echo -e "\033[0;32m    dependencies {\033[0m"
for aar in "$LIBS_DIR"/*.aar; do
    if [ -f "$aar" ]; then
        FILENAME=$(basename -- "$aar")
        ARTIFACT_ID="${FILENAME%.*}"
        echo "        implementation(\"$GROUP_ID:$ARTIFACT_ID:$VERSION\")"
    fi
done
echo -e "\033[0;32m    }\033[0m"
echo -e "\033[0;32m}\033[0m"